package com.jml.jdk8;


import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

//一个简单的swing程序
public class SwingTest_1 {

    public static void main(String[] args) {
        JFrame jframe = new JFrame("My JFrame");
        JButton jButton = new JButton("My JButton");

        //lambda表达式分为3部分左边是参数，中间是箭头符号，右边是执行体代码块
        //表达式单行，没有括号没有分号，省略了类型这里jvm可以推断出类型
        //event表示实现方法中的参数，这里就是ActionEvent
        /*jButton.addActionListener(event -> System.out.println("Button Pressed!"));*/

        //箭头左边ActionEvent表示的是实现方法中的类型，有类型就用括号，没有可以省略
        jButton.addActionListener((ActionEvent event) -> System.out.println("Button Pressed!"));

        //表达式多行，有括号有分号
        /*jButton.addActionListener(event -> {
            System.out.println("Button Pressed!");
        });*/

        //上面的兩個lambda表达式 等价 下面这个匿名内部类
        /*jButton.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Button Pressed!");
            }
        });*/

        jframe.add(jButton);
        jframe.pack();
        jframe.setVisible(true);
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
